/**
 * 更新表格复选历史记录
 * 使用.txt：点击分页查询事件发生前调用；查询事件结束后，循环历史数据，恢复勾选状态
 *
 * @param pageData 当前页面数据
 * @param nowSelectRows 当前已勾选数据
 * @param historyRows 历史数据
 * @param keyStr Key对应的字段
 * @returns 更新后的历史数据，用户回显当前已勾选数据
 */
export function saveTableHistory(pageData, nowSelectRows, historyRows, keyStr) {
    //把当前页面数据从历史数据中删除
    let tempRows = []
    historyRows.filter(history => {
        let hasHistory = false;
        pageData.filter(pageItem => {
            if (history[keyStr] == pageItem[keyStr]) {
                hasHistory = true
            }
        })
        //清除历史数据中，包含的当前页面数据
        if (!hasHistory) {
            tempRows.push(history)
        }
    })

    //插入当前页面已选中数据,且历史数据中不存在
    let noHasRow = []
    nowSelectRows.filter(now => {
        let has = false;
        tempRows.filter(temp => {
            if (temp[keyStr] == now[keyStr]) {
                has = true
            }
        })
        //历史数据中不存在
        if (!has) {
            noHasRow.push(now)
        }
    })
    tempRows.push(...noHasRow)

    let keys = tempRows.map(e => e.id)

    return {rows: tempRows, keys: keys}
}

